package KeyWord.Static;
/*
一旦使用static修饰成员方法，那么这就成为了静态方法。静态方法不再属于对象，而是属于类的

如果没有static关键字，那么必须首先创建对象，然后通过对象才能使用他
如果有了static关键字，那么不需要创建对象，直接使用类名称调用静态方法

无论是成员变量，还是成员方法，如果有了static，都推荐使用类名称来进行调用

注意事项：
1、静态不能直接访问非静态
原因：因为在内存中是 【先】有的静态内容，【后】有的非静态内容  看MyClass类
2、静态方法中不能使用this
原因：this代表当前对象，通过谁调用的方法，谁就是对象

*/
public class Demo02StaticMethod {
    public static void main(String[] args) {
        //首先创建对象
        MyClass obj = new MyClass();
        //然后才能使用没有static关键字的成员方法
        obj.method();

        //对于静态方法来说，可以通过对象名进行调用，也可以直接通过类名称来调用
        //推荐使用下面的用类名称直接调用static方法  如果用创建的对象调用也可以，但是还是会在编译之后被javac翻译成为“类名称.静态方法名”
        MyClass.methodStatic();

        //对于本类当中的静态方法，可以省略类名称调用，当然等效于Demo02StaticMethod.myMethod();
        myMethod();
        Demo02StaticMethod.myMethod();
    }
    public static void myMethod(){
        System.out.println("自己的方法");
    }

}
